1. Field of the Invention
The present invention relates generally to a field of wireless communication, and more particularly, to communicating Automatic Repeat reQuest (ARQ) feedback in wireless communication networks.
2. Description of the Related Art
Typically, in a wireless communication network, ARQ blocks are exchanged between a mobile station and a base station using ARQ protocol at a Medium Access Control (MAC) layer. The ARQ blocks are exchanged between the mobile station and the base station to provide various types of services such as voice service, packet data service, etc.
In normal ARQ operation, a transmitter transmits one or more ARQ blocks to a receiver. In a DownLink (DL) connection, the base station acts as a transmitter and the mobile station acts as a receiver, whereas in an UpLink (UL) connection, the mobile station acts as a transmitter and the base station acts as a receiver. Each ARQ block is identified by a Sequence Number (SN). Typically, whenever an ARQ block is received, the receiver marks the ARQ block as successfully received. If the receiver receives an ARQ block with SN=x before receiving the ARQ block with SN=x−1, the receiver starts an ARQ error detection timer for the ARQ block with the SN=x−1. If the ARQ block with SN=x−1 is not correctly received before expiration of the ARQ error detection timer, the receiver marks the ARQ block with SN=x−1 as failed.
Accordingly, the receiver sends an ARQ feedback indicating a status of the ARQ blocks. For example, the receiver sends positive acknowledgement (ACK) feedback if an ARQ block is successfully received and negative acknowledgement (NACK) feedback if reception of an ARQ block has failed. The ACK and NACK are indicated in an ARQ feedback information element of the ARQ feedback. The receiver sends the ARQ feedback upon receiving an ARQ feedback poll from the transmitter. The transmitter sends the ARQ feedback poll requesting the ARQ feedback after transmitting a predetermined number of ARQ blocks or a predetermined number of bytes of data in multiple ARQ blocks. Also, the receiver sends the ARQ feedback when the receiver fails to receive the ARQ block, or the receiver receives a ARQ discard message from the transmitter or before purging an ARQ block.
Both the transmitter and receiver maintain a status window that is updated based on the ARQ feedback and the received ARQ blocks, respectively. The status window in the transmitter includes a first pointer and a second pointer. The first pointer points to the ARQ block with a lowest sequence number that has been transmitted but not yet positively acknowledged by the receiver. The second pointer points to the ARQ block, which is to be transmitted next by the transmitter.
Similarly, the status window in the receiver includes a first pointer and a second pointer. The first pointer points to the ARQ block with the lowest sequence number which has not yet received correctly by the receiver. The second pointer is the sequence number of a highest ARQ block that is received by the receiver plus one.
When the receiver receives the ARQ feedback poll when the ARQ error detection timer is running for the ARQ block with SN=x, the receiver cannot send the ARQ feedback for ARQ blocks with a sequence number greater than SN=x, even if successfully received, until the ARQ error detection timer expires. As a result, a significant delay is caused in sending the ARQ feedback associated with successfully received/failed ARQ blocks, and the transmitter cannot free up memory space occupied by the successfully received ARQ blocks or retransmit the failed ARQ blocks.
Further, upon transmitting the ARQ feedback poll, if the ARQ feedback is not received by the transmitter before expiration of the ARQ feedback poll retry timer, the transmitter may retry sending an ARQ feedback poll to the receiver. The ARQ feedback poll retry timer is usually set to a longer period than the ARQ error detection timer in order to receive the delayed ARQ feedback upon expiration of the ARQ error detection timer and before expiration of the ARQ feedback poll retry timer. This may increase a significant delay already caused due to the problem described above, thereby resulting in a further delayed retransmission of the ARQ feedback poll and hence, delayed ARQ feedback.